# 配置文件：所有参数统一管理，后续修改直接改这里，不用动核心代码
import os

# ---------------------- 路径配置 ----------------------
# 项目根目录（自动获取，不用改）
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 学生照片库路径
STUDENT_PHOTO_DIR = os.path.join(PROJECT_ROOT, "data", "student_photos")
# 积分存储文件路径（JSON）
STUDENT_SCORE_FILE = os.path.join(PROJECT_ROOT, "data", "student_scores.json")

# ---------------------- 设备配置 ----------------------
# 摄像头编号（0=默认摄像头，蓝牙摄像头依次试1、2）
CAMERA_INDEX = 0
# 麦克风设备索引（默认0，蓝牙麦克风需先运行 voice_recognition.py 查看索引）
MICROPHONE_INDEX = 0

# ---------------------- 人脸识别配置 ----------------------
# 人脸匹配阈值（数值越小越严格，0.6为默认最优值）
FACE_MATCH_TOLERANCE = 0.6
# 点名后重复播报间隔（避免同一人连续播报，单位：秒）
REPEAT_SPEAK_INTERVAL = 5

# ---------------------- 手势检测配置 ----------------------
# 最多检测手的数量（教师操作，只检测1只手）
MAX_HANDS = 1
# 手势检测置信度（0.5足够，数值越高越严格）
HAND_DETECTION_CONFIDENCE = 0.5
HAND_TRACKING_CONFIDENCE = 0.5

# ---------------------- 语音识别配置 ----------------------
# 环境噪音校准时间（单位：秒，噪音大改2）
NOISE_CALIBRATION_DURATION = 1
# 语音监听超时时间（单位：秒，没声音自动跳过）
VOICE_LISTEN_TIMEOUT = 1
# 语音指令最长时长（单位：秒，避免长语音干扰）
VOICE_PHRASE_LIMIT = 3
# 重复积分操作间隔（避免10秒内重复给同一人加减分）
REPEAT_SCORE_INTERVAL = 10

# ---------------------- 语音播报配置 ----------------------
# 语速（120-180合适，默认150）
SPEAK_RATE = 150
# 音量（0-1，默认1.0）
SPEAK_VOLUME = 1.0

# ---------------------- UI显示配置 ----------------------
# 积分排行显示数量（画面右上角显示前5名）
SCORE_DISPLAY_COUNT = 5